package com.global.dao;

import java.util.List;

import com.global.model.Report;
import com.global.model.ReportCategory;

public interface ReportDao extends GenericDao<Report, Long> {

	/**
	 * 保存报表配置信息
	 * @param report
	 * @return 持久化的报表配置信息对象
	 */
	Report saveReport(Report report);
	
	/**
	 * 批量保存报表配置信息
	 * @param report
	 * @return true 表示保存成功
	 */
	boolean saveBatchReport(List<Report> reportList);
	
	/**
	 * 按照报表分类检索出该分类中的报表清单
	 * @param ReportCategory 参考 {@linkplain ReportCategory}
	 * @return List
	 * @see Constants
	 */
	List<Report> getReportList(ReportCategory reportCategory);
	
	/**
	 * 检索出生效（true）或者失效（false）的报表清单
	 * @param status boolean
	 * @return List
	 */
	List<Report> getReportList(boolean status);
	
	/**
	 * 通过报表名称获取到唯一的报表信息
	 * <br/>如果通过名称找到多个，则返回空
	 * @param uniqueReportName 报表名称
	 * @return Report
	 */
	Report getReport(String uniqueReportName);
}
